package codingPractice.huawei;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;

/*
 * 给定两个链表，获取两者中相同节点值的最大连续片段。如果没有公共片段，返回-1。
 * 输入
第一行表示链表1，第二行表示链表2，每条链表长度不超过20个元素，链表不会为空。
输出
公共链表片段
样例
输入
1 2 2 3 9 1 5
9 2 2 3 6 8

输出
2 2 3

 */
public class linkSegment {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Integer> arr1 = new ArrayList<>();
        ArrayList<Integer> arr2 = new ArrayList<>();

        String line1 = scanner.nextLine();
        line1 = line1.replace(" ", "");
        // System.out.println(line1);

        String line2 = scanner.nextLine();
        line2 = line2.replace(" ", "");
        // System.out.println(line2);

        for(int i=0;i<line1.length();i++) {
            arr1.add(line1.charAt(i)-'0');
        }
        for(int i=0;i<line2.length();i++) {
            arr2.add(line2.charAt(i)-'0');
        }
        
        scanner.close();

        HashSet<List<Integer>> hashSet = new HashSet<>();
        for(int i=0;i<arr1.size();i++) {
            for(int j=i;j<arr1.size();j++) {
                List<Integer> subList = arr1.subList(i, j);
                if(!hashSet.contains(subList)) {
                    hashSet.add(new ArrayList<>(subList));
                }
            }
        }

        int maxLen = 0;
        List<Integer> ans = new ArrayList<>();
        for(int i=0;i<arr2.size();i++) {
            for(int j=i;j<arr2.size();j++) {
                List<Integer> subList = arr2.subList(i, j);
                if(hashSet.contains(subList) && subList.size() > maxLen) {
                    ans = subList;
                    maxLen = ans.size();
                }
            }
        }

        if(ans.size() == 0)  System.out.print(-1);
        else {
            for(int a:ans) {
                System.out.print(a);
                System.out.print(' ');
            }
            System.out.println(); // 添加换行符
        }  
    }
}
